<?php

namespace app\validate;

use think\Validate;

// 必须继承基础验证器类才能使用
class Student extends Validate
{
    // 设置两个属性
    // 规则属性 $rule = array('要验证的数组的键名', '规则名1|规则名2|规则名3')
    // 规则： require 必须   chs 只能汉字  length 长度范围 between 值取值范围
    protected $rule = [
        'xm' => ['require', 'chs', 'length' => '2,10', 'token' => '__token__'],
        'img' => ['image', 'fileSize' => '10240', 'fileExt' => ['jpg', 'png']],
        'sex' => ['require', 'checkSex'],
        'age' => ['require', 'number', 'between' => '10,30'],
        'szx' => ['require', 'number'],
        'headimg' => ['require'],
    ];

    // 验证场景属性 $scene
    // 预设在不同场景下 对哪些值进行验证
    protected $scene = [
        '只验证姓名和性别' => ['xm', 'sex'],
        '非图片' => ['xm', 'sex', 'age', 'szx', 'headimg'],
        '图片' => ['img']
    ];

    // 提示信息属性
    protected $message = [
        'xm.require' => '姓名不能为空',
        'xm.chs' => '姓名必须为汉字',
        'sex.require' => '性别不能为空',
        'sex.checkSex' => '性别只能为男或者女',
        'age.require' => '年龄不能为空',
        'age.number' => '年龄只能为数字',
        'age.between' => '年龄范围是10-30',
        'szx.require' => '系别不能为空',
        'szx.number' => '系别不合法',
        'headimg.require' => '请上传头像',
    ];

    // 自定义验证方法(返回值必须为布尔类型)
    public function checkSex($value)
    {
        if ($value == '男' or $value == '女') {
            return true;
        } else {
            return false;
        }
    }
}